#!/bin/bash

stop_cli_jar() {
    echo "尝试停止 cli.jar 进程..."
    # 使用pgrep查找所有cli.jar进程
    pids=$(pgrep -f cli.jar)

    # 检查是否找到了进程
    if [ -z "$pids" ]; then
        echo "未找到 cli.jar 进程"
        exit 1
    else
       for pid in $pids; do
            # 使用kill -15终止找到的进程，并等待进程结束
            kill -15 $pid
            echo "将 SIGTERM 信号发送到进程PID $pid，等待其关闭..."

            # 使用timeout命令等待30秒，如果进程未结束，则继续执行循环
            if ! timeout --foreground -s KILL 30s bash -c "while kill -0 $pid 2>/dev/null; do sleep 1; done"; then
                echo "进程PID$pid 未及时终止，强制杀死！"
                kill -9 $pid
            else
               echo "进程PID $pid 已优雅停止。"
            fi
        done
    fi
}

# 设置trap命令，当接收到SIGINT信号时执行stop_cli_jar函数
trap 'stop_cli_jar' SIGINT

echo "KotlinTools cli 容器启动..."

# 死循环
while true; do
    # 每5秒检查一次，减少CPU占用
    sleep 5
done